package com.example.gokchinesefoodmappcdev.util;

/*
* 自定义响应结果集对象
* */

import java.util.HashMap;

public class ResultData extends HashMap {
//    /*
//    * 响应给前端的编码
//    *     比如状态编码  200 成功
//    *                 500 程序异常
//    *     比如自定义的业务编码
//    *                 10002 操作失败
//    *                 10001 操作成功
//    * */
//    private int code;
//
//    /*
//    * 响应提示信息
//    *      比如： 修改成功、修改失败  这样的信息
//    * */
//    private String msg;
//
//    /*
//    * 响应数据
//    *      封装着响应给前端的数据
//    * */
//    private Object data;


    /**
     * 自定义验证成功响应码
     */
    public static final int VERIFY_SUCCESS = 200;

    /**
     * 自定义验证失败响应码
     */
    public static final int VERIFY_FAIL = 201;


    /*
    * 自定义的操作成功的业务状态码
    * */
    public static final int OPERATION_SUCCESS=10001;
    /*
     * 自定义的操作失败的业务状态码
     * */
    public static final int OPERATION_FAIL=10002;

    /*
     * 自定义的登录成功的业务状态码
     * */
    public static final int LOGIN_SUCCESS=20001;

    /*
     * 自定义的登录失败的业务状态码
     * */
    public static final int LOGIN_FAIL=20002;

    /*
     * 自定义的验证密保问题失败的业务状态码
     * */
    public static final int CHECK_SECURITY_QUESTION_SUCCESS=30001;

    /*
     * 自定义的验证密保问题成功的业务状态码
     * */
    public static final int CHECK_SECURITY_QUESTION_FAIL=30002;

    public ResultData(){}

    public ResultData(int code, String msg) {
//        this.code = code;
//        this.msg = msg;
//        this.data = data;
        this.put("code",code);
        this.put("msg",msg);
    }

    public ResultData(int code, String msg, Object data) {
//        this.code = code;
//        this.msg = msg;
//        this.data = data;
        this.put("code",code);
        this.put("msg",msg);
        this.put("data",data);
    }

    public ResultData(int code, String msg, Object data,Object object) {
//        this.code = code;
//        this.msg = msg;
//        this.data = data;
        this.put("code",code);
        this.put("msg",msg);
        this.put("token",data);
        this.put("user",object);
    }

    /*
    * 操作成功，并且没有数据时，直接响应个前端
    * */
    public static ResultData ok(){
        return new ResultData(OPERATION_SUCCESS,"操作成功",null);
    }


    public static ResultData ok(int code,String msg){
        return new ResultData(code,msg);
    }
    /*
     * 操作失败，并且没有数据时，直接响应个前端
     * */
    public static ResultData fail(){
        return new ResultData(OPERATION_FAIL,"操作失败",null);
    }


    public static ResultData fail(int code,String msg){
        return new ResultData(code,msg,null);
    }
    /*
     * 封装数据响应前端
     * */
    public static ResultData createData(int code,Object data){
        return new ResultData(code,null,data);
    }

    public static ResultData createData(int code,String msg,Object data){
        return new ResultData(code,msg,data);
    }

    public static ResultData fail(String msg){
        return new ResultData(0,msg,null);
    }



}
